package office.service.hr;

import java.util.List;
import office.bo.hr.impl.Examine;
import office.bo.hr.impl.ExamineFormula;
import office.bo.hr.impl.ExamineManage;
import office.bo.hr.impl.ExamineProject;
import office.bo.hr.impl.ExamineProjectStandard;
import office.bo.hr.impl.ExamineSeting;
import office.bo.hr.impl.FormulaProject;
import platform.common.bo.Page;

public interface IExamineService {
	public List<ExamineManage> getAllExamineManage(Page page);
	
	public Page getAllExamineManageTotalPage();
	
	public List<Examine> getExamineByUid(String uid,String examineManagerId); 
	public List<Examine> getExamineTotalByUid(String uid,String examineManagerId); 
	
	public void saveExamineManage(ExamineManage examineManage);
	
	public List<ExamineProject> getAllExamineProject(String ptype);
	
	public List<ExamineSeting> getExamineSetingListByFromUserId(String fromUserId);
	public List<ExamineSeting> getExamineSetingListByToUserId(String toUserId);
	
	public ExamineProject getExamineProjectById(String id) throws Exception;
	
	public void deleteExamineProjectById(String id) throws Exception;
	
	public List<ExamineProject> getExamineProjectByRole(String roleName);
	
	public void saveExamineProject(ExamineProject examineProject);
	
	Examine getExamine(String fromUserId, String toUserId, String eProjectId, String examineManagerId);
	
	ExamineManage getExamineManage(String id);
	
	void saveExamine(Examine e);
	void deleteExamineManager(String examineManagerId) throws Exception ;
	void deleteExamine(String examineManagerId) throws Exception ;
	void deleteExamineAndManager(String examineManagerId);
	Double calculate(String userId, String examineManagerId);
	
	Examine getExamineById(String id);
	ExamineFormula getExamineFormulaByUserId(String userId);
	FormulaProject getFormulaProjectByName(String name);
	/**
	 * 获取所有考核公式
	 * @return
	 */
	public List<ExamineFormula> getAllExamineFormula();
	void saveExamineSeting(ExamineSeting examineSeting);
	void saveExamineFormula(ExamineFormula examineFormula);
	
	void deleteExamineSetingByFormUserId(String fromUserId);
	void deleteExamineSetingByToUserId(String toUserId);
	
	public void saveExamineProjectStandard(ExamineProjectStandard examineProjectStandard) ;
	public List<ExamineProjectStandard> getExamineProjectStandardByExamineProjectId(String examineProjectId);
	public ExamineProjectStandard getExamineProjectStandardById(String id);
	public void deleteExamineProjectStandardById(String id) throws Exception ;
	public void deleteExamineProjectStandardByExamineProjectId(String examineProjectId) ;
}
